#!/usr/bin/env python
# -*- test-case-name: wbts.vhost_server -*-
#Copyright (c) 2011 Isaac Dawson (WBTS Project)
#Permission is hereby granted, free of charge, to any person obtaining a copy 
#of this software and associated documentation files (the "Software"), to deal 
#in the Software without restriction, including without limitation the rights 
#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 
#copies of the Software, and to permit persons to whom the Software is furnished
#to do so, subject to the following conditions:
#
#The above copyright notice and this permission notice shall be included in all
#copies or substantial portions of the Software.
#
#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 
#THE SOFTWARE.
from twisted.trial import unittest
import os
import xmlrpclib

def print_msg(msg):
    print msg
    
class WBTSVHostRPCTest(unittest.TestCase):
    def setUp(self):
        """
        THE FOLLOWING TESTS REQUIRE A WBTS INSTANCE TO BE STARTED.
        """
        self.default_vhost = 'donkifiedtest.com'
        self.xr = xmlrpclib.Server("http://localhost:9999/vhostrpc")
        return
    
    def tearDown(self):
        try:
            self.xr.removeVirtualHost(self.default_vhost)
            self.xr.removeVirtualHost(self.default_vhost+".uk")
        except Exception:
            pass
        
        return
    
    def test_removeVHostDoesntExist(self):
        ret = self.xr.removeVirtualHost(self.default_vhost+".uk")
        self.assertEqual(ret, 1, 'assert non-existent vhost returned 1')
    
    def test_addVirtualHost(self):
        ret = self.xr.addVirtualHost(self.default_vhost+".uk", os.getcwd())
        self.assertEqual(ret, 0, 'assert create vhost returned 0')
        return
        
    def test_getVirtualHostList(self):
        ret = self.xr.getVirtualHostList()
        self.assertIsInstance(ret, list)
        print list
        